// 请注意！！操作混淆前一定要备份或者上传代码

const fs = require('fs');
const path = require('path');
const JavaScriptObfuscator = require('javascript-obfuscator');

// 指定多个 JavaScript 文件目录
const directoryPaths = [
    path.join(__dirname, '../main'), // 第一个目录
    path.join(__dirname, '../renderer/components'), // 第二个目录
    path.join(__dirname, '../renderer/views'), // 第三个目录
    // 可以继续添加更多目录
];

function obfuscateFile(filePath) {
    const code = fs.readFileSync(filePath, 'utf8');
    const obfuscatedCode = JavaScriptObfuscator.obfuscate(code, {
        compact: true,
        controlFlowFlattening: true, // 可根据需要配置更多选项
    }).getObfuscatedCode();
    fs.writeFileSync(filePath, obfuscatedCode);
    console.log(`已混淆文件: ${filePath}`);
}

function obfuscateDirectory(dirPath) {
    fs.readdirSync(dirPath).forEach(file => {
        const fullPath = path.join(dirPath, file);
        const stat = fs.statSync(fullPath);
        if (stat.isDirectory()) {
            obfuscateDirectory(fullPath); // 递归处理子目录
        } else if (path.extname(fullPath) === '.js') {
            obfuscateFile(fullPath); // 处理 .js 文件
        }
    });
}

// 遍历指定的多个目录进行混淆
directoryPaths.forEach(obfuscateDirectory);
console.log('混淆完成');